﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Common;

namespace ASG.CodeGenerator.SQL
{
    public abstract class ProcedureCode<ProcedureParameterType, ParameterType> : ASG.CodeGenerator.Core.MemberCode
        where ProcedureParameterType : ParameterCode<ParameterType>
        where ParameterType : DbParameter
    {
        private string _Name;

        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }

        public abstract ProcedureParameterType this[int index]
        {
            get;
            set;
        }

        public abstract ProcedureParameterType this[string name]
        {
            get;
            set;
        }

        public abstract void AddParameterInfo(ProcedureParameterType parameterInfo);
    }
}
